package conf

import (
	"gitee.com/linxing_3/sr-core/config/source"
)

// 子域配置
type subDomainCfg struct {
	Ollama   *OllamaCfg `json:"ollama" yaml:"ollama"`
	VectorDB *VectorDB  `json:"vectorDB" yaml:"vectorDB"`
	Oss      *Oss       `json:"oss" yaml:"oss"`
}

type OllamaCfg struct {
	source.ReqConf
	UseInject  bool   `json:"useInject" yaml:"useInject"` // 是否使用注入
	Addr       string `json:"addr" yaml:"addr"`
	EmbedModel string `json:"embedModel" yaml:"embedModel"`
	BinPath    string `json:"binPath" yaml:"binPath"`
	CacheDir   string `json:"cacheDir" yaml:"cacheDir"` // 配置文件缓存
}

type VectorDB struct {
	source.ReqConf
	Addr string `json:"addr" yaml:"addr"`
}

type Oss struct {
	Data  string `json:"data" yaml:"data"`   // 文件存储路径
	Thumb string `json:"thumb" yaml:"thumb"` // 缩略图存储路径
}

var Conf = &subDomainCfg{}

func SetupConfig(src source.ISource) {
	src.Scan(Conf)
	if Conf.Ollama == nil {
		Conf.Ollama = &OllamaCfg{}
	}
}
